A hard disk based data server offers high speed random data accessing capability which is useful, for example, in digital video applications such as interactive video processing, non-linear video editing, test video stream generation, and the like. The data servers that have been developed in the past for these applications primarily involve the use of the SCSI protocol because the SCSI protocol has many advantages including compatibility, expandability, and exchangeability. However, these data servers have been either low speed, low cost data servers, or high speed, high cost data servers.
A typical data server 10 implementing the SCSI protocol is illustrated in FIG. 1. The data server 10 includes an SCSI disk 12 for storing data which must be accessed and processed by an application 14. The application 14 accesses the data stored on the SCSI disk 12 through a host computer 16 and an SCSI bus adapter 18. The host computer 16 communicates with the SCSI bus adapter 18 over a host bus 20, and the SCSI bus adapter 18 is connected to the SCSI disk 12 by way of an SCSI bus 22.
One typical requirement demanded for the design of the data server 10 is that the host computer 16, the SCSI bus adapter 18, and the host bus 20 be able to handle the data flow at substantially the same data rates of the SCSI disk 12 and the application 14. While this requirement is technically feasible when the data rate is high, satisfying this requirement at high data rates results in the data server 10 being complicated and costly.
Moreover, unless the data server 10 is highly complicated, the data server 10 is not flexible, simple, or fast, because only the SCSI bus adapter 18 communicates with the SCSI disk 12. For example, as the application 14 processes data stored on the SCSI disk 12, it repeatedly starts and stops data flow from the SCSI disk 12 because the SCSI disk 12 delivers data at a rate which is faster than the processing rate of the application 14. However, all start and stop instructions from the application 14 must be passed to the SCSI disk 12 through the host computer 16 and the SCSI bus adapter 18, which tends to slow down data transfer.
Furthermore, the application 14 may issue data requests at a frequency which is higher than the required data transfer rate of the data file on the SCSI disk 12. The data server 10 must be able to compensate for the difference between the frequency of the data requests from the application 14 and the data transfer rate of the data file on the SCSI disk 12.
In order to develop a low cost and high performance data server, the present invention takes the approach of directly controlling the data flow of the SCSI disk by the application hardware. However, if the application hardware is to control the data flow, care must be exercised so that the data rate is controlled in a simple way and with the required jitter performance and so that the data rate is controlled at any given data rate in a wide range.
Accordingly, the present invention is directed to a packet token generator which achieves these performance requirements. The data server based on the present invention is fast, flexible and/or low cost compared to prior art data servers, particularly to prior art video servers.